The present disclosure relates generally to garbage collection in a computing environment, and more specifically, to garbage collection of an object that may be referenced remotely.
In distributed programming environments, a program can utilize multiple computers or computing devices, each of which may be referred to as a “place.” An object may be created or initialized at a first place, and the first place may point to the object using a local reference. That same object may be referenced from one or more additional places, and such reference(s) may be referred to as remote reference(s).
In a computing environment, garbage collection may be used to reclaim resources (e.g., memory) occupied by one or more objects that are no longer in use by, e.g., a program. To garbage-collect a remotely-referenced object, it may be necessary to check that both local and remote references are deleted or eliminated. Such a check might not be easy when a first or upper-level language is implemented on a second or lower-level language by using the garbage collector of the second language. Conversely, if the garbage collector is implemented in the first or upper-level language, it may degrade the execution performance and interoperability with the second or lower-level language. An object that may be remotely-referenced may be registered in a table in order to preclude an inadvertent garbage-collection of the object.